package cn.edu.xjtu.work.firstUniqChar;

/**
 * 387. 字符串中的第一个唯一字符
 * 
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 */
public class Solution {
  /**
   * 维护一个包含26个字母的数组,遍历字符串,统计字母出现的次数,再次遍历,找到第一个出现次数为0的字母下标并返回
   * 
   * @param s
   * @return
   */
  public int firstUniqChar(String s) {
    int[] ch = new int[26];
    for (int i = 0; i < s.length(); i++) {
      ch[s.charAt(i) - 'a']++;
    }
    for (int i = 0; i < s.length(); i++) {
      if (ch[s.charAt(i) - 'a'] == 1) {
        return i;
      }
    }
    return -1;
  }
}
